#include<stdio.h>
#include<sys/types.h>
#include<unistd.h>
#include<stdlib.h>
#include<string.h>
#include<sys/stat.h>
#include<fcntl.h>
int main()
{
  char buff[1024]; 
  ssize_t s =  read(0,buff,sizeof(buff));
  if(s < 0) return 1;
  buff[s] = '\0';
  printf("%s",buff);
  return 0;
}

//int main()
//{
// //close(1);
//int ret =  printf("stdin->fd:%d\n",stdin->_fileno);
// printf("stdout->fd:%d\n",stdout->_fileno);
// printf("stderr->fd:%d\n",stderr->_fileno);
//
// fprintf(stderr,"printf ret:%d\n",ret);
//  return 0;
//}








//int main()
//{
//  umask(0);//可以改权限掩码
//  //truncate,O_TRUNC是先清空再写类似"w"
//  //下面这三个宏的一起使用类似w的功能
//  
//  //int fd = open("log.txt",O_WRONLY|O_CREAT|O_TRUNC,0666);
//  int fd = open("log.txt",O_WRONLY|O_CREAT|O_APPEND,0666);
//  int fd1 = open("log1.txt",O_WRONLY|O_CREAT|O_APPEND,0666);
//  int fd2 = open("log2.txt",O_WRONLY|O_CREAT|O_APPEND,0666);
//  int fd3 = open("log3.txt",O_WRONLY|O_CREAT|O_APPEND,0666);
//  //append追加写入 --"a"
//  printf("fd:%d\n",fd);
//  printf("fd1:%d\n",fd1);
//  printf("fd2:%d\n",fd2);
//  printf("fd3:%d\n",fd3);
//  // 0 1 2呢? stdin,stdout,stderr,这三个
//  if(fd == -1)
//  {
//    printf("open file error\n");
//    return 0;
//  }
// // fd file descriptor 文件描述符,fd,int
// //
// const char* mes = "hello system call\n";
// write(fd,mes,strlen(mes));
// write(1,mes,strlen(mes));
// close(fd);
//  return 0;
//}
//int main()
//{
//  //打开文件的路径和文件名,默认在当前路径创建文件
//  //当前路径指的是进程的路径,cwd,current work directory
//  //如果我更改了当前进程的cwd,就可以把文件新建到其他路径
////  chdir("../");
// FILE* fp = fopen("open.txt","a");
// if(fp == NULL)
// {
//   perror("打开错误");
//   return 0;
// }
// const char* mes = "hello message\n";
//  
// fwrite(mes,sizeof(char),strlen(mes),fp);
// fwrite(mes,sizeof(char),strlen(mes),fp);
// fprintf(stdout,"hello Linux");
// fprintf(fp,"%s,%d\n","111",111);
// 
// //w:写入之前,都会对文件进行清空处理! > 
// //a:也是写入,追加写！>>
// //echo "he" > 文件  重定向就是w方法！
// //fwrite(message,strlen(message),1,fp);
// //第二个表示每个元素的大小,第三个表示读入\写入的数据总数
// //比如读入int arr[10],就是第二个传sizeof(int),第三个传10
// //
// //需不需要+1,为什么? 
//  //不要加1！字符串以'\0'结尾是C语言的规定,和文件没关系！
//  //文件不认识'\0'!
// //fputs("haha",fp);
// fclose(fp);
//
//  return 0;
//}
